package regex;
/**
 * 正则表达式数量词
 * X?    X，一次或一次也没有
 * X*     X，零次或多次
 * X+     X，一次或多次
 * X{n}    X，恰好 n 次
 * X{n,}   X，至少 n 次
 * X{n,m}   X，至少 n 次，但是不超过 m 次
 */
public class RegexDemo06 {
    public static void main(String[] args) {
        System.out.println("abcdef".matches("[a-z][a-z][a-z][a-z][a-z][a-z]")); // true

        System.out.println("a".matches("a?"));  // a出现0次或者1次  true
        System.out.println("b".matches("a?"));  // a出现0次或者1次  false
        System.out.println("aa".matches("a?")); // a出现0次或者1次  false

        System.out.println("a".matches("a*")); // a出现0次或者多次  一次也叫多次 true
        System.out.println("aaaaa".matches("a*")); // a出现0次或者多次  ture
        System.out.println("aaaaa".matches("a*")); // a出现0次或者多次  ture
        System.out.println("".matches("a*")); // a出现0次或者多次  ture

        System.out.println("aaa".matches("a+")); // a出现1次或者多次  ture
        System.out.println("".matches("a+")); // a出现1次或者多次  false
        System.out.println("abb".matches("a+b+")); //   ture

        System.out.println("aaaa".matches("a{4}")); //  X，恰好 n 次   ture

        System.out.println("aaaa".matches("a{1,}")); //  a至少一次   ture
        System.out.println("".matches("a{1,}")); //  a至少一次    false
        System.out.println("aaaa".matches("a{4,6}")); //  a至少一次,不超过6次    true
    }
}
